package br.com.beautycenter.DAO;

import br.com.beautycenter.bean.Produto;
import br.com.beautycenter.hibernateUtil.DaoBase;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.Query;

public class PersisteProduto extends DaoBase<Produto>{
    
    public List<Produto> retornarProdutos(){
        try {
            return findAll();
        } catch (Exception ex) {
            
            return new ArrayList<Produto>();
        }
    }
    
    public Produto retornarProdutoPeloID(Produto produto){
        return getEntityManager().find(Produto.class, produto.getIdProduto());
    }
    
    public Produto retornarProdutoPeloCodigoBarras(Produto produto){
        Query query = getEntityManager().createQuery("FROM Produto p WHERE p.codigoBarras =:codigoBarras");
        query.setParameter("codigoBarras", produto.getCodigoBarras());
        
        try{
            return (Produto) query.getSingleResult();
        }catch(Exception ex){
            return null;
        }
    }
    
    public List<Produto> retornarProdutoPeloNome(Produto produto){
        Query query = getEntityManager().createQuery("FROM Produto p WHERE p.descricao LIKE :produto");
        query.setParameter("produto", "%"+produto.getDescricao()+"%");
        
        try{
           return query.getResultList(); 
        }catch(Exception ex){
            return new ArrayList<Produto>();
        }
    }
    
    public void salvar(Produto produto){
        save(produto);
    }
    
    public void deletar(Produto produto){
        try {
            delete(produto);
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
    
    public void atualizar(Produto produto){
        update(produto);
    }

}